package com.aaa.sbms.service;

import com.aaa.sbms.util.ResultUtil;

import java.util.Map;

public interface RecruitService {

    /**
     * 部门信息
     * @return
     */
    Map depts();

    /**
     * 职位信息
     * @return
     */
    Map positions();

    /**
     * 分页查询招聘信息
     * @param map
     * @return
     */
    Map getList(Map map);

    /**
     * 分页查询应聘者信息
     * @param map
     * @return
     */
    Map recruitPage(Map map);

    /**
     * 分页查询审核记录
     * @param map
     * @return
     */
    Map recruitRecordPage(Map map);

    /**
     * 分页查询入职员工
     * @param map
     * @return
     */
    Map empPage(Map map);

    /**
     * 查询一条招聘信息
     * @param id
     * @return
     */
    Map recruitInfoOne(int id);

    /**
     * 查询一条招聘者信息
     * @param id
     * @return
     */
    Map recruitOne(int id);

    /**
     * 添加招聘信息
     * @param map
     * @return
     */
    int addRecruitInfo(Map map);

    /**
     * 添加应聘者信息
     * @param map
     * @return
     */
    int addRecruit(Map map);


    /**
     * 更新招聘信息
     * @param map
     * @return
     */
    int updateRecruitInfo(Map map);

    /**
     * 根据id删除招聘信息
     * @param id
     * @return
     */
    int deleteRecruitInfo(int id);

    /**
     * 同意入职申请
     * 先判断招聘人数是否为空
     * 如果不为空，添加信息到users表，添加审核信息到审核记录表，修改状态为入职成功3，修改招聘信息表的所需人数-1
     * 如果为空，直接返回信息
     * @param map
     * @return
     */
    ResultUtil accept(Map map);

    /**
     * 驳回入职申请
     * 先判断招聘人数是否为空
     * 如果不为空，添加审核信息到审核记录表，修改状态为驳回，发送信息给申请人
     * 如果为空，直接返回信息
     * @param map
     * @return
     */
    ResultUtil reject(Map map);
}
